package com.chuanyun.wechatcheckin.model.wechat;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 假期信息
 */
@Data
public class VacationInfo {
    
    /**
     * 假期id
     */
    @JsonProperty("id")
    private Integer id;
    
    /**
     * 发放时长，单位为秒
     */
    @JsonProperty("assignduration")
    private Long assignDuration;
    
    /**
     * 使用时长，单位为秒
     */
    @JsonProperty("usedduration")
    private Long usedDuration;
    
    /**
     * 剩余时长，单位为秒
     */
    @JsonProperty("leftduration")
    private Long leftDuration;
    
    /**
     * 假期名称
     */
    @JsonProperty("vacationname")
    private String vacationName;
    
    /**
     * 假期的实际发放时长，通常在设置了按照实际工作时间发放假期后进行计算，单位为秒
     */
    @JsonProperty("real_assignduration")
    private Long realAssignDuration;
    
    /**
     * 获取剩余天数
     * @return 剩余天数
     */
    public double getLeftDays() {
        return leftDuration != null ? leftDuration / 86400.0 : 0.0;
    }
    
    /**
     * 获取剩余小时数
     * @return 剩余小时数
     */
    public double getLeftHours() {
        return leftDuration != null ? leftDuration / 3600.0 : 0.0;
    }
    
    /**
     * 获取已使用天数
     * @return 已使用天数
     */
    public double getUsedDays() {
        return usedDuration != null ? usedDuration / 86400.0 : 0.0;
    }
    
    /**
     * 获取已使用小时数
     * @return 已使用小时数
     */
    public double getUsedHours() {
        return usedDuration != null ? usedDuration / 3600.0 : 0.0;
    }
    
    /**
     * 获取分配天数
     * @return 分配天数
     */
    public double getAssignDays() {
        return assignDuration != null ? assignDuration / 86400.0 : 0.0;
    }
    
    /**
     * 获取分配小时数
     * @return 分配小时数
     */
    public double getAssignHours() {
        return assignDuration != null ? assignDuration / 3600.0 : 0.0;
    }
}